qutebrowser 运行 Greasemonkey 脚本

qutebrowser 浏览器支持 Greasemonkey

使用方法:

限制:

实践

这里以 药方 (YAWF) (greasyfork.org) 脚本为例,实验一下。

我使用 Arch Linux,data 目录为 /home/maxiee/.local/share/qutebrowser

将脚本移入目录,通过 :greasemonkey-reload 命令重载脚本。

从程序日志中看到脚本被加载:

23:21:27 INFO: Loaded Greasemonkey scripts:

Yet Another Weibo Filter

但是我发现脚本没有生效。查看控制台:

caught TypeError: Cannot read properties of null (reading 'addEventListener')
    at userscript:GM-https://github.com/tiansh/Yet Another Weibo Filter:3255:28
    at userscript:GM-https://github.com/tiansh/Yet Another Weibo Filter:3806:2
    at userscript:GM-https://github.com/tiansh/Yet Another Weibo Filter:19280:3
05

在 devtools 里可以很方便地给脚本下断点。报错行的代码是:

document.documentElement.addEventListener(key, function (event) {

通过 debug,看到 document.documentElementnull,空指针异常了。

遍历整个脚本,对于 documentElement 都是直接拿来用,没有赋值的地方,这说明应该 Greasemonkey 将这个值准备好才是。

查看 GitHub,找到相关 issue:Qt 5.12: document.documentElement is null in GM_addStyle · Issue #4322 · qutebrowser/qutebrowser

原来是对 Greasemonkey 元数据的 @run-at 实现不一致导致的:

至此,Greasemonkeyqutebrowser 中顺利运行起来了。

网络资源


本文作者:Maeiee

本文链接:qutebrowser 运行 Greasemonkey 脚本

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!